package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 药品对象 medication
 *
 * @author ruoyi
 * @date 2023-02-14
 */
public class Medication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 药品类型 */
    @Excel(name = "药品类型")
    private Long category;

    /** 用法用量 */
    @Excel(name = "用法用量")
    private Integer usageDosage;

    /** 规格 */
    @Excel(name = "规格")
    private String specs;

    /** 药品数量 */
    @Excel(name = "药品数量")
    private Long num;

    /** 供应商 */
    @Excel(name = "供应商")
    private Long supplier;

    /** 生产商 */
    @Excel(name = "生产商")
    private Long manufacturer;

    /** 实际进价 */
    @Excel(name = "实际进价")
    private Long purchasePrice;

    /** 零售价 */
    @Excel(name = "零售价")
    private Long retailPrice;

    /** 生产厂家 */
    @Excel(name = "生产厂家")
    private String factory;

    /** 批准文号 */
    @Excel(name = "批准文号")
    private String approvalNumber;

    /** 生产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date manufactureDate;

    /** 有效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveDate;

    /** 生产批号 */
    @Excel(name = "生产批号")
    private String productionBatch;

    /** 部门id */
    private Long deptId;

    /** 第一个父类部门id */
    private Long deptFirstParentId;

    /** 删除标志（0代表存在 1代表删除） */
    private String delFlag;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setCategory(Long category)
    {
        this.category = category;
    }

    public Long getCategory()
    {
        return category;
    }
    public void setUsageDosage(Integer usageDosage)
    {
        this.usageDosage = usageDosage;
    }

    public Integer getUsageDosage()
    {
        return usageDosage;
    }
    public void setSpecs(String specs)
    {
        this.specs = specs;
    }

    public String getSpecs()
    {
        return specs;
    }
    public void setNum(Long num)
    {
        this.num = num;
    }

    public Long getNum()
    {
        return num;
    }
    public void setSupplier(Long supplier)
    {
        this.supplier = supplier;
    }

    public Long getSupplier()
    {
        return supplier;
    }
    public void setManufacturer(Long manufacturer)
    {
        this.manufacturer = manufacturer;
    }

    public Long getManufacturer()
    {
        return manufacturer;
    }
    public void setPurchasePrice(Long purchasePrice)
    {
        this.purchasePrice = purchasePrice;
    }

    public Long getPurchasePrice()
    {
        return purchasePrice;
    }
    public void setRetailPrice(Long retailPrice)
    {
        this.retailPrice = retailPrice;
    }

    public Long getRetailPrice()
    {
        return retailPrice;
    }
    public void setFactory(String factory)
    {
        this.factory = factory;
    }

    public String getFactory()
    {
        return factory;
    }
    public void setApprovalNumber(String approvalNumber)
    {
        this.approvalNumber = approvalNumber;
    }

    public String getApprovalNumber()
    {
        return approvalNumber;
    }
    public void setManufactureDate(Date manufactureDate)
    {
        this.manufactureDate = manufactureDate;
    }

    public Date getManufactureDate()
    {
        return manufactureDate;
    }
    public void setEffectiveDate(Date effectiveDate)
    {
        this.effectiveDate = effectiveDate;
    }

    public Date getEffectiveDate()
    {
        return effectiveDate;
    }
    public void setProductionBatch(String productionBatch)
    {
        this.productionBatch = productionBatch;
    }

    public String getProductionBatch()
    {
        return productionBatch;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptFirstParentId(Long deptFirstParentId)
    {
        this.deptFirstParentId = deptFirstParentId;
    }

    public Long getDeptFirstParentId()
    {
        return deptFirstParentId;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("category", getCategory())
            .append("usageDosage", getUsageDosage())
            .append("specs", getSpecs())
            .append("num", getNum())
            .append("supplier", getSupplier())
            .append("manufacturer", getManufacturer())
            .append("purchasePrice", getPurchasePrice())
            .append("retailPrice", getRetailPrice())
            .append("factory", getFactory())
            .append("approvalNumber", getApprovalNumber())
            .append("manufactureDate", getManufactureDate())
            .append("effectiveDate", getEffectiveDate())
            .append("productionBatch", getProductionBatch())
            .append("remark", getRemark())
            .append("deptId", getDeptId())
            .append("deptFirstParentId", getDeptFirstParentId())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
